FL

Problema com drop de Key com Action ID

Por FlamesAdmin, 17 de abr. de 2020 em Programação

tfs036
16
3.1k
17 de abril de 2020 às 18:55

Seguinte, estou com um probleminha no meu servidor/sources que ele não dropa uma key com ActionID

Ele apenas dropa como se fosse item normal.

18:54 Você vê purple key (Key:0).
ItemID: [2086].

Se alguém tiver uma solução e puder ajudar ficarei grato e darei a devida reputação :D

19 de abril de 2020 às 15:23

@Yan18

Conseguiria me ajudar?

Yan OliveiraY
19 de abril de 2020 às 18:55
3 horas atrás, FlamesAdmin disse:

@Yan18

Conseguiria me ajudar?

Vou tentar te ajudar camarada! Esse item é novo no seu servidor, você criou ele ou já veio no server?

19 de abril de 2020 às 20:26

@Yan18key padrão do servidor, ID 2086, já tentei com item diferente e tals

Yan OliveiraY
19 de abril de 2020 às 21:01
27 minutos atrás, FlamesAdmin disse:

@Yan18key padrão do servidor, ID 2086, já tentei com item diferente e tals

Estranho, mas temporariamente, usa dessa maneira por enquanto, vai em Data/Creaturescripts/Scripts e crie um arquivo chamado item_purplekey.lua e adicione o código dentro:

local id_purplekey = 2086 -- ID DA PURPLE KEY
local id_action = 15000 -- COLOQUE O ID DA ACTIONID

function onDeath(cid, corpse, deathList)
local item = doCreateItemEx(id_purplekey)
doItemSetAttribute(item, 'aid', id_action)
doAddContainerItemEx(corpse.uid, item)
return true
end

 

Agora abra o creaturescripts.xml e adicione a tag:

<event type="death" name="item_purplekey" event="script" value="item_purplekey.lua"/>

 

E por fim adicione o evento na xml de todos os monstros que dropam a key:

<script>
  <event name="item_purplekey"/>
</script>

 

Teste e avise caso dê algum problema.

20 de abril de 2020 às 19:01
21 horas atrás, Yan18 disse:

Teste e avise caso dê algum problema.

Achei essa solução ai no OTLand e mesmo assim não deu certo

Yan OliveiraY
20 de abril de 2020 às 19:02
1 minuto atrás, FlamesAdmin disse:

Achei essa solução ai no OTLand e mesmo assim não deu certo

Estranho, essa key tem uma action para fazer o que no seu server?

Editado Abril 20 por Yan18

20 de abril de 2020 às 19:04
2 minutos atrás, Yan18 disse:

Estranho, essa key tem uma action para fazer o que no seu server?

É pra quest, ela dropa com AID e usa pra abrir porta

Ai pra monstros diferentes ela dropa a mesma ou outra key com AID diferente pra liberar outra porta

Editado Abril 20 por FlamesAdmin

LokysL
20 de abril de 2020 às 19:24
17 minutos atrás, FlamesAdmin disse:

É pra quest, ela dropa com AID e usa pra abrir porta

Ai pra monstros diferentes ela dropa a mesma ou outra key com AID diferente pra liberar outra porta

Olá no meu servidor tem esse sistema de drop de key e lá eu fiz o seguinte, coloquei o drop da key no monstro com o action no loot e funcionou.

 

<item id="2086" actionId="1990" chance="100000"/> --chave

 

Yan OliveiraY
20 de abril de 2020 às 20:08
41 minutos atrás, Lokys disse:

Olá no meu servidor tem esse sistema de drop de key e lá eu fiz o seguinte, coloquei o drop da key no monstro com o action no loot e funcionou.

 

<item id="2086" actionId="1990" chance="100000"/> --chave

 

Tem essa possibilidade também, mas eu acho que era assim que ele estava fazendo, pois ele disse que não estava vindo com a action. Mas caso ele setado a actionid de outra forma, essa é para funcionar.

20 de abril de 2020 às 21:53
2 horas atrás, Lokys disse:

Olá no meu servidor tem esse sistema de drop de key e lá eu fiz o seguinte, coloquei o drop da key no monstro com o action no loot e funcionou.

 

<item id="2086" actionId="1990" chance="100000"/> --chave

 

Então, eu fiz desse jeito tbm, só que tbm não deu certo :/ 

seu é que tfs?

 

Na minha source em monsters.cpp era assim, só que crashava qnd dropava com AID

if(lootBlock.actionId != -1)
	tmpItem->setAttribute(lootBlock.actionId);

Ai o Orochi Elf/Tony Namoral fez isso

if(lootBlock.actionId != -1)
	tmpItem->setAttribute("aid", lootBlock.actionId);

Só que não dropa com AID ...

 

@Lokyscomo ta sua função no monsters.cpp 

Item* MonsterType::createLoot(const LootBlock& lootBlock)

 

Editado Abril 20 por FlamesAdmin

LokysL
20 de abril de 2020 às 22:30
36 minutos atrás, FlamesAdmin disse:

Então, eu fiz desse jeito tbm, só que tbm não deu certo :/ 

seu é que tfs?

 

Na minha source em monsters.cpp era assim, só que crashava qnd dropava com AID

if(lootBlock.actionId != -1)
	tmpItem->setAttribute(lootBlock.actionId);

Ai o Orochi Elf/Tony Namoral fez isso

if(lootBlock.actionId != -1)
	tmpItem->setAttribute("aid", lootBlock.actionId);

Só que não dropa com AID ...

o meu tfs e o 0.4 mais quem compilo foi meu rl eu nem sei mexer com source...

Yan OliveiraY
23 de abril de 2020 às 15:39
Em 20/04/2020 em 21:53, FlamesAdmin disse:

Então, eu fiz desse jeito tbm, só que tbm não deu certo :/ 

seu é que tfs?

 

Na minha source em monsters.cpp era assim, só que crashava qnd dropava com AID

if(lootBlock.actionId != -1)
	tmpItem->setAttribute(lootBlock.actionId);

Ai o Orochi Elf/Tony Namoral fez isso

if(lootBlock.actionId != -1)
	tmpItem->setAttribute("aid", lootBlock.actionId);

Só que não dropa com AID ...

 

@Lokyscomo ta sua função no monsters.cpp 

Item* MonsterType::createLoot(const LootBlock& lootBlock)

 

Qual é sua TFS?

23 de abril de 2020 às 22:53
7 horas atrás, Yan18 disse:

Qual é sua TFS?

0.3.6

Yan OliveiraY
23 de abril de 2020 às 23:57
Em 20/04/2020 em 21:53, FlamesAdmin disse:

Então, eu fiz desse jeito tbm, só que tbm não deu certo :/ 

seu é que tfs?

 

Na minha source em monsters.cpp era assim, só que crashava qnd dropava com AID

if(lootBlock.actionId != -1)
	tmpItem->setAttribute(lootBlock.actionId);

Ai o Orochi Elf/Tony Namoral fez isso

if(lootBlock.actionId != -1)
	tmpItem->setAttribute("aid", lootBlock.actionId);

Só que não dropa com AID ...

 

@Lokyscomo ta sua função no monsters.cpp 

Item* MonsterType::createLoot(const LootBlock& lootBlock)

 

Eu dei uma olhada em duas sources de duas bases diferentes, e em ambas o arquivo monster.cpp na função createLoot está diferente da sua na parte da actionid, está:

if(lootBlock.actionId != -1)
		tmpItem->setActionId(lootBlock.actionId);

Teria que olhar todo o código para ver.